#ifndef HALOUTPUTS_H
#define HALOUTPUTS_H


/* Includes */
#include "stdtypedef.h"
#include "MALioapi.h"


/* Types definition */
/* typedef */
typedef enum
{
	INACTIVE,
	ACTIVE
}E_SM_OUTPUTS_ST;	/* LED States */

typedef enum
{
	INVALID,
	VALID
}E_SM_INPUTS_ST;	/* LED States */

typedef enum
{
	HALFLIGHTS,
	FULLLIGHTS
}E_SM_LIGHTPOWER_ST;	/* LED States */


/* Functions prototypes */
/* Set States */
void Set_HighBeamLights_State 			(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LowBeamLights_State 			(E_SM_OUTPUTS_ST le_output_cmd);

void Set_RightFrontParkingLights_State 	(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftFrontParkingLights_State 	(E_SM_OUTPUTS_ST le_output_cmd);
void Set_RightRearParkingLights_State 	(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftRearParkingLights_State 	(E_SM_OUTPUTS_ST le_output_cmd);

void Set_ReverseLights_State 			(E_SM_OUTPUTS_ST le_output_cmd);

void Set_RightFrontTurnSignal_State 	(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftFrontTurnSignal_State 		(E_SM_OUTPUTS_ST le_output_cmd);
void Set_RightRearTurnSignal_State 		(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftRearTurnSignal_State 		(E_SM_OUTPUTS_ST le_output_cmd);

void Set_RightStopLights_State 			(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftStopLights_State 			(E_SM_OUTPUTS_ST le_output_cmd);

void Set_RightEmergencyLigths_State 	(E_SM_OUTPUTS_ST le_output_cmd);
void Set_LeftEmergencyLights_State 		(E_SM_OUTPUTS_ST le_output_cmd);

/* config inputs */
void Init_HighBeamLights_hardware 			(void);
void Init_LowBeamLights_hardware 			(void);
void Init_RightFrontParkingLights_hardware 	(void);
void Init_LeftFrontParkingLights_hardware 	(void);
void Init_RightRearParkingLights_hardware 	(void);
void Init_LeftRearParkingLights_hardware 	(void);
void Init_ReverseLights_hardware 			(void);
void Init_RightFrontTurnSignal_hardware 	(void);
void Init_LeftFrontTurnSignal_hardware 		(void);
void Init_RightRearTurnSignal_hardware 		(void);
void Init_LeftRearTurnSignal_hardware 		(void);
void Init_RightStopLights_hardware 			(void);
void Init_LeftStopLights_hardware 			(void);
void Init_RightEmergencyLigths_hardware 	(void);
void Init_LeftEmergencyLights_hardware 		(void);


/* Exported defines */
#define HighBeamLights				pin_Pxx
#define LowBeamLights				pin_Pxx
#define RightFrontParkingLights		pin_Pxx
#define LeftFrontParkingLights		pin_Pxx
#define RightRearParkingLights		pin_Pxx
#define LeftRearParkingLights		pin_Pxx
#define ReverseLights				pin_Pxx
#define RightFrontTurnSignal		pin_PB15
#define LeftFrontTurnSignal			pin_PB14
#define RightRearTurnSignal			pin_Pxx
#define LeftRearTurnSignal			pin_Pxx
#define RightStopLights				pin_Pxx
#define LeftStopLights				pin_Pxx
#define RightEmergencyLigths		pin_PB13
#define LeftEmergencyLights			pin_PB12

#define	OFF		0
#define ON		1


#enfif
